# SPDX-License-Identifier: Apache-2.0

zephyr_library()
zephyr_library_property(ALLOW_EMPTY TRUE)
zephyr_library_sources_ifdef(CONFIG_ARCV2_INTERRUPT_UNIT    intc_arcv2_irq_unit.c)
zephyr_library_sources_ifdef(CONFIG_CAVS_ICTL               intc_cavs.c)
zephyr_library_sources_ifdef(CONFIG_DW_ICTL                 intc_dw.c)
zephyr_library_sources_ifdef(CONFIG_DW_ICTL_ACE             intc_dw_ace.c)
zephyr_library_sources_ifdef(CONFIG_EXTI_STM32              intc_exti_stm32.c)
zephyr_library_sources_ifdef(CONFIG_GD32_EXTI               intc_gd32_exti.c)
zephyr_library_sources_ifdef(CONFIG_GIC_V1                  intc_gic.c)
zephyr_library_sources_ifdef(CONFIG_GIC_V2                  intc_gic.c)
zephyr_library_sources_ifdef(CONFIG_GIC_V3                  intc_gicv3.c)
zephyr_library_sources_ifdef(CONFIG_GIC_V3_ITS              intc_gicv3_its.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_INTC_STM32WB0      intc_gpio_stm32wb0.c)
zephyr_library_sources_ifdef(CONFIG_INTEL_VTD_ICTL          intc_intel_vtd.c)
zephyr_library_sources_ifdef(CONFIG_IOAPIC                  intc_ioapic.c)
zephyr_library_sources_ifdef(CONFIG_ITE_IT8XXX2_INTC        intc_ite_it8xxx2.c)
zephyr_library_sources_ifdef(CONFIG_ITE_IT8XXX2_INTC_V2     intc_ite_it8xxx2_v2.c)
zephyr_library_sources_ifdef(CONFIG_ITE_IT8XXX2_WUC         wuc_ite_it8xxx2.c)
zephyr_library_sources_ifdef(CONFIG_LEON_IRQMP              intc_irqmp.c)
zephyr_library_sources_ifdef(CONFIG_LOAPIC                  intc_loapic.c intc_system_apic.c)
zephyr_library_sources_ifdef(CONFIG_LOAPIC_SPURIOUS_VECTOR  intc_loapic_spurious.S)
zephyr_library_sources_ifdef(CONFIG_MCHP_ECIA_XEC           intc_mchp_ecia_xec.c)
zephyr_library_sources_ifdef(CONFIG_NPCX_MIWU               intc_miwu.c)
zephyr_library_sources_ifdef(CONFIG_PLIC                    intc_plic.c)
zephyr_library_sources_ifdef(CONFIG_RV32M1_INTMUX           intc_rv32m1_intmux.c)
zephyr_library_sources_ifdef(CONFIG_SAM0_EIC                intc_sam0_eic.c)
zephyr_library_sources_ifdef(CONFIG_SHARED_IRQ              intc_shared_irq.c)
zephyr_library_sources_ifdef(CONFIG_INTC_ESP32              intc_esp32.c)
zephyr_library_sources_ifdef(CONFIG_INTC_ESP32C3            intc_esp32c3.c)
zephyr_library_sources_ifdef(CONFIG_SWERV_PIC               intc_swerv_pic.c)
zephyr_library_sources_ifdef(CONFIG_VEXRISCV_LITEX_IRQ      intc_vexriscv_litex.c)
zephyr_library_sources_ifdef(CONFIG_VIM                     intc_vim.c)
zephyr_library_sources_ifdef(CONFIG_NUCLEI_ECLIC            intc_nuclei_eclic.c)
zephyr_library_sources_ifdef(CONFIG_NUCLEI_ECLIC            intc_nuclei_eclic.S)
zephyr_library_sources_ifdef(CONFIG_NRFX_CLIC               intc_nrfx_clic.c)
zephyr_library_sources_ifdef(CONFIG_NRFX_CLIC               intc_nrfx_clic.S)
zephyr_library_sources_ifdef(CONFIG_NXP_S32_EIRQ            intc_eirq_nxp_s32.c)
zephyr_library_sources_ifdef(CONFIG_NXP_S32_WKPU            intc_wkpu_nxp_s32.c)
zephyr_library_sources_ifdef(CONFIG_XMC4XXX_INTC            intc_xmc4xxx.c)
zephyr_library_sources_ifdef(CONFIG_NXP_PINT                intc_nxp_pint.c)
zephyr_library_sources_ifdef(CONFIG_RENESAS_RA_ICU          intc_renesas_ra_icu.c)
zephyr_library_sources_ifdef(CONFIG_NXP_IRQSTEER            intc_nxp_irqsteer.c)
zephyr_library_sources_ifdef(CONFIG_INTC_MTK_ADSP           intc_mtk_adsp.c)

if(CONFIG_INTEL_VTD_ICTL)
  zephyr_library_include_directories(${ZEPHYR_BASE}/arch/x86/include)
endif()

if(CONFIG_PLIC_SHELL)
  message(WARNING "
      WARNING:  `CONFIG_PLIC_SHELL` is enabled.
      This can use quite a bit of RAM (PLICs * IRQs * sizeof(uint16_t))"
  )
endif()

zephyr_library_include_directories(${ZEPHYR_BASE}/arch/common/include)
